COD: a channel-oriented debugger for concurrent logic programs

نویسنده

  • Steve Gregory
چکیده

We present a debugger for concurrent logic programs that works on the channel-oriented principle: it allows program bugs to be diagnosed by probing values of variables, rather than by the more traditional method of tracing the execution of processes. A key feature of our debugger is that, like Shapiro’s algorithmic debugging technique, it searches for a fault in an “intelligent” manner, asking the user pertinent questions about the program’s correctness. Whereas algorithmic debugging searches for a faulty node in a proof tree, our debugger searches for a faulty node in the program’s process graph. We claim that this allows an observed bug to be rapidly traced back to the fault of which it is a symptom. A prototype implementation has been developed for the KLIC dialect of KL1.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

JavaTA: A Logic-based Debugger for Java

This paper presents a logic based approach to debugging Java programs. In contrast with traditional debugging we propose a debugging methodology for Java programs using logical queries on individual execution states and also over the history of execution. These queries were arrived at by a systematic study of errors in object-oriented programs in our earlier research. We represent the salient e...

متن کامل

A Declarative Debugging Scheme

We present a very simple but flexible declarative debugging scheme. A Abstract-1 declarative debugger can be defined in Prolog with a single clause, and relies on the definition of just two additional predicates. With suitable definitions of these predicates, the debugger can diagnose several classes of bugs in many languages. We give examples of diagnoses of wrong answers in functional, relati...

متن کامل

Declarative Concurrent Object-oriented Programming in Tempo++

This paper presents Tempo++, a high-level programming language designed for concurrent object-oriented applications. It is based on a new programming model combining logic programming, constraint solving and object-oriented programming in a uniform framework. Tempo++ is an object-oriented extension to the declarative concurrent programming language Tempo Gregory and Ramirez 95]. It includes ext...

متن کامل

Debugging Multi-Threaded Applications using Pin-Augmented GDB (PGDB)

In contrast to single threaded applications, debugging multi-threaded applications is complex because of the non-deterministic nature of concurrent programs. Multiple threads in concurrent programs introduce bugs like datarace, deadlock and livelock. Popular debuggers like GNU Debugger (GDB), Intel Debugger (IDB) and Microsoft Visual Studio Debugger (MVSD) typically use static or compile-time i...

متن کامل

JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs

Debugging concurrent Java programs is a difficult task because of multiple control flows and inherent nondeterminism. It requires techniques not provided by traditional debuggers such as tracing, visualization, and automated error analysis. Therefore, we have developed the JaVis environment for visualizing and debugging concurrent Java programs. The information about a running program is collec...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007